<html>
<title>Release Notes for Derby 10.5.1.1</title>
<body>
<h1>
<a name="Release Notes for Derby 10.5.1.1"></a>Release Notes for Derby 10.5.1.1</h1>
<blockquote>
<p>These notes describe the difference between Derby release 10.5.1.1 and the preceding release 10.4.2.0.</p>
</blockquote>
<ul>
<li>
<a href="#Overview">Overview</a>
</li>
<li>
<a href="#New Features">New Features</a>
</li>
<li>
<a href="#Bug Fixes">Bug Fixes</a>
</li>
<li>
<a href="#Issues">Issues</a>
</li>
<li>
<a href="#Build Environment">Build Environment</a>
</li>
</ul>
<h2>
<a name="Overview"></a>Overview</h2>
<blockquote>

<p>
Derby is a pure Java relational database engine using standard SQL and JDBC as its APIs.
</p>


<p>
Derby functionality includes:
</p>


<ul>

<li>Embedded engine with JDBC drivers</li>

<li>Network Server</li>

<li>Network client JDBC drivers</li>

<li>Command line tools: ij (SQL scripting), dblook (schema dump) and sysinfo (system info)</li>

</ul>

</blockquote>
<h2>
<a name="New Features"></a>New Features</h2>
<blockquote>

<p>
This is a feature release. The following features were added.
</p>

<ul>

<li>

<b>SQL Roles</b> - SQL roles (as described in SQL 2003 and errata) are useful for administering privileges for groups of users. Administering roles is generally less error-prone than administering privileges for individual users. SQL Roles are defined in Feature T331 "Basic roles" and Feature T332 "Extended roles". Derby 10.5 implements a subset of T331, plus support for CURRENT_ROLE, which is a part of T332.
</li>

<li>

<b>Generated Columns</b> - Generated Columns is a feature which instructs Derby to fill a column with an expression built out of other columns in the row. Derby constructs these column values at INSERT and UPDATE time. The user declares indexes on these columns. This in turn improves SELECT performance since it lets users declare indexes on pre-computed pieces of the WHERE clause. This feature satisfies support for SQL Feature T175.
</li>

<li>

<b>LOB Improvements</b> - There were many performance and usability improvements for BLOBs and CLOBs.  
</li>

<li>

<b>Replication of encrypted databases</b> - With 10.5 it is possible to replicate encrypted databases. 
</li>

<li>

<b>OFFSET/FETCH FIRST</b> - SQL 2008 has added new syntax to support a direct way to limit the 
returned set of rows in a result set, through the fetch first and offset clauses. 
</li>

<li>

<b>In-memory back end</b> - Initial implementation of a storage engine for Derby where all data is kept in memory. There is no documentation for this feature. This functionality itself is not yet fully implemented, but users are welcome to experiment with it. For details, see the
<a href="http://wiki.apache.org/db-derby/InMemoryBackEndPrimer">Primer for In-memory Back Ends</a>.
</li>

<li>

<b>Standard ALTER COLUMN syntax</b> - Allow standard SQL "SET" keyword in ALTER COLUMN syntax, like so:
 "ALTER TABLE ALTER [COLUMN] columnname SET DEFAULT default-value"
</li>

<li>

<b>SYSCS_UTIL.SYSCS_UPDATE_STATISTICS</b> - New system procedure that updates cardinality statistics (or creates them if they do not exist) for a table's index or for all the indexes on a table, allowing a user to ensure that a query plan based on the most recent state of the table can be created.
</li>

</ul>

</blockquote>
<h2>
<a name="Bug Fixes"></a>Bug Fixes</h2>
<blockquote>
<p>The following issues are addressed by Derby release 10.5.1.1. These issues are not addressed in the preceding 10.4.2.0 release.</p>
<table border="2">
<tr>
<td><b>Issue Id</b></td><td><b>Description</b></td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4148">DERBY-4148</a></td><td>NullPointerException in system.sttest run with 10.5.1.0</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4146">DERBY-4146</a></td><td>Cannot insert row when a generated column references an identity column</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4145">DERBY-4145</a></td><td>NullPointerException on CREATE TABLE when generated column depends on another generated column</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4141">DERBY-4141</a></td><td>XAExceptions thrown by Derby can have errorCode 0</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4135">DERBY-4135</a></td><td>Failure in BlobClob4BlobTest due to wrong results being returned</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4128">DERBY-4128</a></td><td>Failure in ServerPropertiesTest due to java.security.AccessControlException on the server side, in 10.4 to 10.5.1. soft upgrade mode</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4127">DERBY-4127</a></td><td>ArrayIndexOutOfBoundsException in DatabaseMetaDataTest when run in Soft Upgrade mode</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4126">DERBY-4126</a></td><td>You can't invoke a table function which is stored in a jar file inside the database</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4125">DERBY-4125</a></td><td>The in-memory storage back end doesn't work on Windows</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4122">DERBY-4122</a></td><td>ClassCastException in SQLClob when running in soft upgrade mode (10.4.2.0 -&gt; 10.5.1.0)</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4121">DERBY-4121</a></td><td>Documentation: more UPDATE_STATISTICS fixes needed for Reference Manual and Tuning Derby</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4119">DERBY-4119</a></td><td>Compress on a large table fails with IllegalArgumentException - Illegal Capacity</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4117">DERBY-4117</a></td><td>dblook script fails when URL contains special characters</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4116">DERBY-4116</a></td><td>SYSCS_UTIL.SYSCS_UPDATE_STATISTICS should update the store estimated row count for the table</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4104">DERBY-4104</a></td><td>Documentation: update documentation files to 10.5</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4103">DERBY-4103</a></td><td>Allow unlimited growth for in-memory conglomerates</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4096">DERBY-4096</a></td><td>'testRunTimeStatistics(org.apache.derbyTesting.functionTests.tests.lang.OffsetFetchNextTest)junit.framework.AssertionFailedError' on Windows</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4095">DERBY-4095</a></td><td>Trigger  fails with ERROR 38000: The exception 'java.sql.SQLException: ResultSet not open  during VTIResultSet.getNextRowCore()</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4094">DERBY-4094</a></td><td>Enforce absolute paths in the in-memory back end internal storage structure</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4093">DERBY-4093</a></td><td>Improve handling of the database temporary directory</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4088">DERBY-4088</a></td><td>DDMReader readBytes ArrayIndexOutOfBoundsException</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4084">DERBY-4084</a></td><td>Determine the subSubProtocol name for the in-memory back end</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4079">DERBY-4079</a></td><td>Add support for SQL:2008 &lt;result offset clause&gt; and &lt;fetch first clause&gt; to limit result set cardinality</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4078">DERBY-4078</a></td><td>Document the SQL Standard routine matching rules which Derby now supports</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4073">DERBY-4073</a></td><td>Creation/configuration of ClientXDataSource fails because of two setSsl methods</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4072">DERBY-4072</a></td><td>shutdown with incorrect permission on log files shows java.lang.NullPointerException  at org.apache.derby.impl.store.raw.log.LogToFile.flush(LogToFile.java:3964).  Should give bettter message.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4071">DERBY-4071</a></td><td>AssertFailure when selecting rows from a table with CHARACTER and VARCHAR columns</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4063">DERBY-4063</a></td><td>Constraint causes wrong query result when using exists</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4061">DERBY-4061</a></td><td>InputStream returned from Blob.getBinaryStream(long, long) terminates the stream by returning 0, should return -1</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4060">DERBY-4060</a></td><td>Blob.getBinaryStream(long,long) is off by one for the pos+len check</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4059">DERBY-4059</a></td><td>If space reclamation cannot obtain container lock it will not retry getting the lock</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4050">DERBY-4050</a></td><td>Multithreaded clob update causes growth in table that does not get reclaimed</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4049">DERBY-4049</a></td><td>SELECT statement topic in Reference Manual should reflect current WHERE clause behavior</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4048">DERBY-4048</a></td><td>Update Statistics code in AlterTableConstantAction should use execute transaction rather than compile transaction</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4042">DERBY-4042</a></td><td>org.apache.derby.impl.load.Import needs to escape single quotes</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4040">DERBY-4040</a></td><td>SQLChar.getLength returns wrong length for some data values</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4028">DERBY-4028</a></td><td>two rows can be inserted with the same value in a column that a unique constraint on that column should prevent</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4027">DERBY-4027</a></td><td>An attempt was made to access an out of range slot on a page</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4025">DERBY-4025</a></td><td>CHAR data type documentation fails to describe the maximum allowed length</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4024">DERBY-4024</a></td><td>Replace felix.jar file with the felix sources</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4022">DERBY-4022</a></td><td>Remove dependency of junit targets on deprecated jdk16 variable</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4017">DERBY-4017</a></td><td>Removed deprecated jdk16 variable from the machinery which builds javadoc</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4016">DERBY-4016</a></td><td>Document syntax change for ALTER TABLE in Reference Manual</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4014">DERBY-4014</a></td><td>Update Derby Jira Report XML VTI to access more fields</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4013">DERBY-4013</a></td><td>Allow standard SQL syntax: ALTER TABLE ALTER [COLUMN] &lt;col&gt; SET DEFAULT &lt;default&gt;</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4012">DERBY-4012</a></td><td>'largedata/LobLimits.java' fails with "EXPECTED SQL Exception: (XJ001) Java exception: 'A truncation error was encountered trying to shrink CLOB 'XXXX' to length 104857600.: org.apache.derby.iapi.services.io.DerbyIOException'."</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4010">DERBY-4010</a></td><td>PassThroughException should not reimplement initCause()/getCause()</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4008">DERBY-4008</a></td><td>Only send RDBNAM on ACCSEC if EBCDIC conversion is possible</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4006">DERBY-4006</a></td><td>ALTER COLUMN ... WITH DEFAULT NULL does not change the default</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-4004">DERBY-4004</a></td><td> Remove required RDBNAM from ACCSEC. Use SECCHK RDBNAM if none is provided on ACCSEC</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3997">DERBY-3997</a></td><td>ORDER BY causes column to be returned</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3996">DERBY-3996</a></td><td>Change eol style to native on jsr169 stubs</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3990">DERBY-3990</a></td><td>ResultSetStreamTest fails on case sensitive file systems, and isn't run as part of any suite</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3989">DERBY-3989</a></td><td>Set the Java 5 compilation path based on the Java 6 compilation path if a Java 5 environment can't be found but a Java 6 environment can be</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3988">DERBY-3988</a></td><td>Set the Java 6 complilation path based on the Java 5 compilation path so that the JDBC4 support is always built</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3985">DERBY-3985</a></td><td>Replace BUILDING.txt with a simlified up-to-date BUILDING.html</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3984">DERBY-3984</a></td><td>Separate out the small number of build targets which really require JDK1.4 features from the bulk of the targets which ought to compile cleanly against small device libraries</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3983">DERBY-3983</a></td><td>User Guide documentation on the limitations of small-device support is stale</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3982">DERBY-3982</a></td><td>Add a facility to override the default set of old versions to be tested in the upgrade tests.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3981">DERBY-3981</a></td><td>Improve distribution of hash codes in SQLBinary and SQLChar</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3978">DERBY-3978</a></td><td>Clob.truncate(long) in the client driver doesn't update the cached Clob length</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3977">DERBY-3977</a></td><td>Clob.truncate with a value greater than the Clob length raises different exceptions in embedded and client driver</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3975">DERBY-3975</a></td><td>SELECT DISTINCT may return duplicates with territory-based collation</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3972">DERBY-3972</a></td><td>Update test harness to run with DesktopEE JRE</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3970">DERBY-3970</a></td><td>PositionedStoreStream doesn't initialize itself properly</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3969">DERBY-3969</a></td><td>NPE if you declare a constraint on a generated column and omit the datatype</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3966">DERBY-3966</a></td><td>Do not require JRE 1.4 libraries at compile time since SUN's JDK 1.4 went out of support and can be used on JRE 1.4 without any problem</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3964">DERBY-3964</a></td><td>NullPointerException when re-evaluating generated column during ON DELETE SET NULL referential action</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3959">DERBY-3959</a></td><td>Reference Manual needs information on generated columns</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3958">DERBY-3958</a></td><td>ImportExportProcedures imports ./testData/ImportExport/position_info.del using US-ASCII but the file contains non-ascii characters</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3956">DERBY-3956</a></td><td>Remove method TemplateRow.checkPartialColumnTypes</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3950">DERBY-3950</a></td><td>You should get an error if you try to override a generated column via an INSERT driven by an inner ResultSet</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3948">DERBY-3948</a></td><td>Don't allow references to generated columns in the NEW transition variables of triggered actions of BEFORE triggers</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3945">DERBY-3945</a></td><td>Generation clauses which mention user-coded functions may produce different resuls depending on who performs the triggering INSERT/UPDATE</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3943">DERBY-3943</a></td><td>testReplication_Local_3_p2_StateTests_smallInsert_immediateStopMaster_DISABLED() causes hang in teardown()</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3938">DERBY-3938</a></td><td>Document that you can change the length of varbinary as well as varchar columns</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3936">DERBY-3936</a></td><td>Add CharacterStreamDescriptor</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3935">DERBY-3935</a></td><td>Introduce interface for a position aware stream</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3934">DERBY-3934</a></td><td>Improve performance of reading modified Clobs</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3932">DERBY-3932</a></td><td>Add tests of generated columns when sql authorization is turned on</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3931">DERBY-3931</a></td><td>GeneratedColumnsTest fails with "'F_MINUS' is not recognized as a function or procedure." on cvm/phoneME</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3930">DERBY-3930</a></td><td>SQL roles: Add VTI for CONTAINED_ROLES</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3923">DERBY-3923</a></td><td>Make the datatype optional when declaring columns with generation clauses</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3922">DERBY-3922</a></td><td>Enable the adding of generated columns via ALTER TABLE</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3917">DERBY-3917</a></td><td>RolesConferredPrivilegesTest  fails with  'java.lang.NoClassDefFoundError: java.sql.DriverManager'  with weme 6.1</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3911">DERBY-3911</a></td><td>BTreeController.reclaim_deleted_rows() may hide exceptions</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3909">DERBY-3909</a></td><td>Race condition in NetXAResource.removeXaresFromSameRMchain()</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3907">DERBY-3907</a></td><td>Save useful length information for Clobs in store</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3905">DERBY-3905</a></td><td>Failed tests should save the database off to the fail directory</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3904">DERBY-3904</a></td><td>NPE on left join with aggregate</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3903">DERBY-3903</a></td><td>'The class 'org.apache.derby.diag.EnabledRoles' does not exist or is inaccessible.' in new roles tests (DERBY-3886)</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3902">DERBY-3902</a></td><td>some messages are referenced but never used - MessageBundleTest output</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3901">DERBY-3901</a></td><td>SQL roles: Move upgrade logic from 10.4 to 10.5</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3897">DERBY-3897</a></td><td>SQLSessionContext not correctly initialized in some non-method call nested contexts</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3895">DERBY-3895</a></td><td>Needs update of master for 'derbyall/derbynetmats/DerbyNet/derbynetmats/holdCursorJDBC30'?</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3894">DERBY-3894</a></td><td>Reference Manual: supported functions should be listed in JDBC escape syntax topic</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3890">DERBY-3890</a></td><td>Replication: NPE for startSlave of encrypted database</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3889">DERBY-3889</a></td><td>LOBStreamControl.truncate() doesn't delete temporary files</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3886">DERBY-3886</a></td><td>SQL roles: ij show enabled and settable roles</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3883">DERBY-3883</a></td><td>LOBStreamControl.replaceBytes() leaves temporary files open</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3880">DERBY-3880</a></td><td>NPE on a query with having clause involving a join</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3879">DERBY-3879</a></td><td>Getting Started Guide has typo and version problems</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3878">DERBY-3878</a></td><td>Replication: stopSlave does not close serversocket when master has crashed.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3877">DERBY-3877</a></td><td>SQL roles: build support for dblook</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3875">DERBY-3875</a></td><td>Derby cannot replace a database after encountering corruption</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3874">DERBY-3874</a></td><td>Document numeric function ATAN2(float1,float2)</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3872">DERBY-3872</a></td><td>NullPoinerException thrown when INTEGER function used as a predicate in a WHERE clause of a SELECT .. GROUP BY ..  HAVING statement</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3871">DERBY-3871</a></td><td>EmbedBlob.setBytes returns incorrect insertion count</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3869">DERBY-3869</a></td><td>intermittent hang pinging  server on Linux</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3865">DERBY-3865</a></td><td>NPE in testSemantics(.....lang.RolesTest) on JavaME / CVM</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3864">DERBY-3864</a></td><td>Remove utility class PrivilegedFileOps</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3863">DERBY-3863</a></td><td>improve test importExportIJ.sql</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3859">DERBY-3859</a></td><td>Reset the current role when EmbedPooledConnection creates a new logical connection</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3855">DERBY-3855</a></td><td>The Tuning guide should mention that LIKE transformations/optimizations are disabled when using territory-based collations</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3850">DERBY-3850</a></td><td>Remove unneeded workarounds for DERBY-177 and DERBY-3693</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3847">DERBY-3847</a></td><td>Tuning Guide lacks information on turning off Derby property settings</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3845">DERBY-3845</a></td><td>Problems running  org.apache.derbyTesting.system.optimizer.RunOptimizerTest</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3841">DERBY-3841</a></td><td>'testTimeSlice_*(NetworkServerControlApiTest.java)' fails on Jvm1.5/vista, Jvm1.4/SunOS 5.11</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3840">DERBY-3840</a></td><td>The test code executes java processes by just executing java instead of using a full path. This may cause the wrong java to be picked up.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3837">DERBY-3837</a></td><td>need to test getting appropriate error message when os files are read-only</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3835">DERBY-3835</a></td><td>Convert derbynet/getCurrentProperties to JUnit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3832">DERBY-3832</a></td><td>Convert derbynet/timeslice.java to Junit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3831">DERBY-3831</a></td><td>RuntimeStatisticsParser can not distinguish names of table or index well and truly</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3828">DERBY-3828</a></td><td>Convert jdbcapi/SURTest_ij.sql to JUnit.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3827">DERBY-3827</a></td><td>Add Apache 2.0 license headers to a number of files</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3826">DERBY-3826</a></td><td>Remove the update-with-jdbc4 script, which is dead code now</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3825">DERBY-3825</a></td><td>StoreStreamClob.getReader(charPos) performs poorly</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3818">DERBY-3818</a></td><td>client Insert/retrieval of 18MB  Clob is extremely slow  in MultiByteClobTest</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3816">DERBY-3816</a></td><td>Administration Guide topics on unsupported DB2 driver should be removed</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3813">DERBY-3813</a></td><td>Derby tests for the existance of BigDecimal methods toPlainString and bdPrecison but does not check if they were found before using them.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3812">DERBY-3812</a></td><td>failure in testAttributeDrdaStreamOutBufferSize(org.apache.derbyTesting.functionTests.tests.management.NetworkServerMBeanTest)junit.framework.AssertionFailedError: expected:&lt;0&gt; but was:&lt;131072&gt;</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3810">DERBY-3810</a></td><td>Create a simple Clob performance regression test</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3807">DERBY-3807</a></td><td>traces of removed ij functionality of ij.unicodeEscape should be removed</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3805">DERBY-3805</a></td><td>Create a simple Blob performance regression test</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3803">DERBY-3803</a></td><td>'org.apache.derbyTesting.functionTests.tests.lang.XMLTypeAndOpsTest' failures on JVM 1.5 on trunk, 10.4 and 10.3</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3802">DERBY-3802</a></td><td>Convert "org.apache.derbyTesting.functionTests.tests.lang.optimizerOverrides.sql" to junit.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3800">DERBY-3800</a></td><td>Convert derbynet/maxthreads to JUnit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3799">DERBY-3799</a></td><td>NullPointerException when accessing a clob through a pooled connection</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3798">DERBY-3798</a></td><td>Remove unnecessary call to Hashtable.get() in TableScanResultSet.getNextRowCore()</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3797">DERBY-3797</a></td><td>Convert jdbcapi/metadataMultiConn to JUnit.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3796">DERBY-3796</a></td><td>Convert derbynet/OutBufferedStream to JUnit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3793">DERBY-3793</a></td><td>Remove unnecessary methods from InternalClob interface</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3791">DERBY-3791</a></td><td>Excessive memory usage when fetching small Clobs</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3787">DERBY-3787</a></td><td>Document the new system stored procedure SYSCS_UTIL.SYSCS_UPDATE_STATISTICS which was added as part of DERBY-269</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3786">DERBY-3786</a></td><td>Assert failure in CacheEntry.unkeepForRemove when running stress.multi</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3784">DERBY-3784</a></td><td>ImportExportTest doesn't detect lack of expected errors</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3783">DERBY-3783</a></td><td>LOBStreamControl shouldn't throw SQLException</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3782">DERBY-3782</a></td><td>Client Configuration.java imports engine class  org.apache.derby.iapi.services.info.JVMInfo</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3781">DERBY-3781</a></td><td>PositionedStoreStream.reposition(pos) with pos greater than length leaves the stream object in an inconsistent state</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3780">DERBY-3780</a></td><td>Run junit tests with -Dfile.encoding="UTF-16" to expose encoding issues and analyze failures</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3779">DERBY-3779</a></td><td>Add client side JDBC statement pool documentation</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3777">DERBY-3777</a></td><td>SecureServerTest, SSLTest are failed on Zos with exit code 143 starting network server</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3776">DERBY-3776</a></td><td>testGetBytes under BlobClob4BlobTest failed on Zos  with encoding issue</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3775">DERBY-3775</a></td><td>BlobStoredProcedureTest failed on Zos: AssertionFailedError: Error SYSIBM.BLOBGETPOSITIONFROMLOCATOR returns the wrong value for the position of the Blob  expected:&lt;8&gt; but was:&lt;-1&gt;</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3774">DERBY-3774</a></td><td>jdbc4/ClobTest fails on Zos with AssertionFailedError: Streams differ at index 0 expected:&lt;200&gt; but was:&lt;72&gt;</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3773">DERBY-3773</a></td><td>ImportExportLobTest failed on Zos  Clobs differ at index 1 expected:&lt;99&gt; but was:&lt;196&gt;</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3771">DERBY-3771</a></td><td>testClasspathChecker under SysinfoCPCheckTest failed on Zos</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3770">DERBY-3770</a></td><td>Create a utility class for skipping data in an InputStream</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3769">DERBY-3769</a></td><td>Make LOBStoredProcedure on the server side smarter about the read buffer size</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3768">DERBY-3768</a></td><td>Make EmbedBlob.length use skip instead of read</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3767">DERBY-3767</a></td><td>Convert "org.apache.derbyTesting.functionTests.tests.lang.nulls.sql" to junit.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3766">DERBY-3766</a></td><td>EmbedBlob.setPosition is highly ineffective for streams</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3764">DERBY-3764</a></td><td>Union Query fail on Derby 10.4.1.3</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3763">DERBY-3763</a></td><td>Rename BaseJDBCTestCase.usingDerbyNet</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3762">DERBY-3762</a></td><td>Convert "org.apache.derbyTesting.functionTests.tests.lang.arithmetic.sql" to junit.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3760">DERBY-3760</a></td><td>Convert "org.apache.derbyTesting.functionTests.tests.lang.miscerrors.sql" to junit.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3759">DERBY-3759</a></td><td>Convert "org.apache.derbyTesting.functionTests.tests.lang.ungroupedAggregatesNegative.sql" to junit.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3758">DERBY-3758</a></td><td>Convert "org.apache.derbyTesting.functionTests.tests.lang.precedence.sql" to junit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3755">DERBY-3755</a></td><td>ij's help text lacks the optional [HOLD | NOHOLD] syntax for GET CURSOR</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3754">DERBY-3754</a></td><td> Convert "org.apache.derbyTesting.functionTests.tests.lang.connect.sql" to junit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3751">DERBY-3751</a></td><td>Convert case.sql to junit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3750">DERBY-3750</a></td><td>Convert  "org.apache.derbyTesting.functionTests.tests.lang.constant Expression.sql" to junit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3745">DERBY-3745</a></td><td>Derby can leak classloaders in an app server environment</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3743">DERBY-3743</a></td><td>Revoking EXECUTE privilege on a function if used in a CHECK constraint: implementation problem</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3742">DERBY-3742</a></td><td>Move test code from CompressedNumber to a unit test</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3741">DERBY-3741</a></td><td>SQL LENGTH function materializes CLOB into memory</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3739">DERBY-3739</a></td><td>Skip and read methods in ArrayInputStream may overflow</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3738">DERBY-3738</a></td><td>Add more tests for legal/illegal commands in the different replication states</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3736">DERBY-3736</a></td><td>Revoking a column level privilege from a user, a prepared statement relying on that privilege can still be executed</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3735">DERBY-3735</a></td><td>Incorrect position calculation in PositionedStoreStream with read(byte[],...)</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3734">DERBY-3734</a></td><td>Maximum value allowed for derby.storage.fileCacheSize (100) is too low for large system.  Increase the maximum value and redocument the property.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3732">DERBY-3732</a></td><td>SQL Length function materializes BLOB  into memory</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3731">DERBY-3731</a></td><td>Improve calculation of refSize in ClassSize.java</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3730">DERBY-3730</a></td><td>Bundle-SymbolicName: needed in Derby manifest for OSGi 4 environment</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3728">DERBY-3728</a></td><td>Fix error handling in PrivilegedFileOpsForTests</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3726">DERBY-3726</a></td><td>Don't call RAFContainer.padFile() from instances of RAFContainer4</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3725">DERBY-3725</a></td><td>add more information to the XSDB1:ERROR XSDB1: Unknown page format at page  error</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3723">DERBY-3723</a></td><td>Reset current schema to default (user name) when creating a new logical connection in the client driver</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3722">DERBY-3722</a></td><td>Add circularity check for the GRANT role statement</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3718">DERBY-3718</a></td><td>NPE when firing a trigger</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3717">DERBY-3717</a></td><td>convert derbynet/getCurrentProperties.java to junit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3715">DERBY-3715</a></td><td>java/testing/README.htm refers to a non-existing test</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3711">DERBY-3711</a></td><td>convert store/aes.sql to junit test &amp; add unrestricted test cases.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3708">DERBY-3708</a></td><td>setting tracedirectory from the command line does not work</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3707">DERBY-3707</a></td><td>STATUS file changes June 2008</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3706">DERBY-3706</a></td><td>NetworkServer console messages should print a time stamp</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3705">DERBY-3705</a></td><td>In Net Client mode, negative values for stream length are accepted without an exception for PreparedStatement.setAsciiStream()</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3704">DERBY-3704</a></td><td>If an IOException is encountered during establishment of the connection, Network Server should print the root exception to the console instead of a generic message</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3703">DERBY-3703</a></td><td>Make it possible to build the JSR169 support with the jdk1.4 libraries</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3702">DERBY-3702</a></td><td>Remove xml-apis.jar because we no longer have to compile against jdk1.3</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3701">DERBY-3701</a></td><td>java.lang.Exception: DRDA_UnableToAccept.S:Unable to accept connections and client hang if tracing is turned on but traceDirectory does not exist</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3700">DERBY-3700</a></td><td>Get rid of tools/java/empty.jar</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3696">DERBY-3696</a></td><td>Delete superfluous test lang/longStringColumn.java</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3695">DERBY-3695</a></td><td>NullPointerException when invoking statement event listeners if one of the listeners is null</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3694">DERBY-3694</a></td><td>'Method resolution for signature java.lang.String.valueOf(int) was ambiguous. (No single maximally specific method.)' in 'testFunctionNullHandling(org.apache.derbyTesting.functionTests.tests.lang.RoutineTest)'  on JavaME</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3693">DERBY-3693</a></td><td>Deadlocks accessing DB metadata</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3692">DERBY-3692</a></td><td>'javax.transaction.xa.XAException' ++  in  'J2EEDataSourceTest'</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3690">DERBY-3690</a></td><td>EmbedPooledConnection doesn't reset schema when creating a new logical connection</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3686">DERBY-3686</a></td><td>convert predicatePushdown.sql  to JUnit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3685">DERBY-3685</a></td><td>weme 6.1 Base connection pooling suitejunit.framework.AssertionFailedError: java.lang.NullPointerException</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3684">DERBY-3684</a></td><td>Wire the vti demo into the build.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3682">DERBY-3682</a></td><td>SYSCS_BULK_INSERT doesn't quote identifiers or strings properly</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3681">DERBY-3681</a></td><td>When authenticating a user at connect time, verify that the user provided is not also a defined role name.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3678">DERBY-3678</a></td><td>StackOverflowException in deadlock trace</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3674">DERBY-3674</a></td><td>'ALTER TABLE' is not allowed on the System table '"SYSCS_DIAG"."TRANSACTION_TABLE"' in derbyall - store/TransactionTable.sql</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3673">DERBY-3673</a></td><td>Add checks that a new role isn't already a user authorization id</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3668">DERBY-3668</a></td><td>Remove JDBC 3.0-specific topics from Reference Manual and merge implementation notes as needed</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3667">DERBY-3667</a></td><td>SQL roles: Make CURRENT_ROLE check that the role is still valid</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3666">DERBY-3666</a></td><td>Make role descriptor a dependency Provider</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3665">DERBY-3665</a></td><td>Master file for derbynet/testProperties.java needs update for 10.3.2.2 to 10.3.3.0 version change.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3663">DERBY-3663</a></td><td>Convert store/streamingColumn to JUnit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3661">DERBY-3661</a></td><td>Typo yields redundant test case in GrantRevokeTest</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3659">DERBY-3659</a></td><td>revive tests with ldap references to be runnable as junit tests</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3658">DERBY-3658</a></td><td>LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3657">DERBY-3657</a></td><td>Comment in template security policy incorrectly says that JMX is not enabled by default</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3655">DERBY-3655</a></td><td>errror in nightly regression test: LobStreamsTest:encryptedjunit.framework.AssertionFailedError: f:\jartest\JarResults.2008-04-29\ibm16_suites.All\system\singleUse\oneuse1e\tmp\lob6165.tmp</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3653">DERBY-3653</a></td><td>Convert datetime.sql to JUnit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3652">DERBY-3652</a></td><td>Derby does not follow the SQL Standard when trying to map SQL routines to Java methods.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3649">DERBY-3649</a></td><td>can't call a stored function with an aggregate argument without getting the following error: ERROR 42Y29</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3642">DERBY-3642</a></td><td>Update and rectify the Derby tutorial</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3640">DERBY-3640</a></td><td>Add an example for table function in Derby Reference Manual</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3638">DERBY-3638</a></td><td>java/testing/Readme.htm location of derbyTesting.jar</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3633">DERBY-3633</a></td><td>tools/derbyrunjartest.java fails with 'No command given.' (expecting 'No arguments given.')</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3631">DERBY-3631</a></td><td>UDF used with aggregate arguments results in error 30000</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3629">DERBY-3629</a></td><td>Tools Guide should document continuation marker for ij</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3625">DERBY-3625</a></td><td>XSDA3 error in concateTests in lang.LangHarnessJavaTest caused by bug in SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE()</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3623">DERBY-3623</a></td><td>Convert deadlockMode.java to JUnit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3622">DERBY-3622</a></td><td>SYSCS_UTIL.SYSCS_EMPTY_STATEMENT_CACHE needs a better description in the reference manual</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3619">DERBY-3619</a></td><td>Implement more load types for org.apache.derbyTesting.perf.clients.Runner</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3618">DERBY-3618</a></td><td>Perform thread dump with ASSERTS with jdk 1.5 or higher</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3615">DERBY-3615</a></td><td>Making the instructions more clear in documentation(BUILDING.txt) regarding setting JRE lib path for a Windows system</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3613">DERBY-3613</a></td><td>SELECT DISTINCT field FROM TABLE_NAME GROUP BY field,  field2</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3612">DERBY-3612</a></td><td>Developer's Guide needs correction on garbage collection</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3602">DERBY-3602</a></td><td>If derbytesting.jar is in a different directory than the derby jars SystemPrivilegesPermissionTest fails with java.security.AccessControlException</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3601">DERBY-3601</a></td><td>Optimize LOBStateTracker for non-locator servers</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3597">DERBY-3597</a></td><td>Incorporate DERBY-3310 and DERBY-3494 write-ups into NormalizeResultSetNode javadoc</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3596">DERBY-3596</a></td><td>Creation of logical connections from a pooled connection causes resource leak on the server</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3589">DERBY-3589</a></td><td>AllocPage.createPage() doesn't initialize minimumRecordSize correctly</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3588">DERBY-3588</a></td><td>suites.All fails to run on Jvm 1.5 when built with JDK 1.5 (Failed to invoke suite(): .jdbc4._Suite)</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3587">DERBY-3587</a></td><td>Convert jdbcapi/testRelative.java to JUnit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3586">DERBY-3586</a></td><td>Remove am.Connection.reset(LogWriter,ClientBaseDataSource,boolean) and called methods</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3584">DERBY-3584</a></td><td>Replication tests shall not be run on Java ME</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3582">DERBY-3582</a></td><td>IndexOutOfBoundsError in ClockPolicy.moveHand</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3581">DERBY-3581</a></td><td>Changing certain properties on client DataSource objects causes existing connections to reflect the new values</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3580">DERBY-3580</a></td><td>Remove unused method Connection.resetConnection(LogWriter, String, Properties)</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3579">DERBY-3579</a></td><td>The Developer's Guide incorrectly describes the behavior of transactions inside procedures and functions</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3578">DERBY-3578</a></td><td>DrdaStreamOutBufferSize attribute of NetworkServerMBean should be of type int instead of String</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3576">DERBY-3576</a></td><td>Merge EngineBlob and EngineClob into a single interface</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3574">DERBY-3574</a></td><td>With client, attempting to get the lob length after commit  or connection close if there  was a call to length() before commit does not throw an exception</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3572">DERBY-3572</a></td><td>directory error in the file "java/testing/README.htm"</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3571">DERBY-3571</a></td><td>LOB locators are not released if the LOB columns are not accessed by the client</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3570">DERBY-3570</a></td><td>Implement DETERMINISTIC keyword for procedures and functions</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3568">DERBY-3568</a></td><td>Convert jdbcapi/savepointJdbc30_JSR169.java and jdbcapi/savepointJdbc30_XA.java to JUnit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3567">DERBY-3567</a></td><td>AsynchronousLogShipper#forceFlush should time out</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3566">DERBY-3566</a></td><td>Alter column set data type not allowed in soft upgrade with unique constraint</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3562">DERBY-3562</a></td><td>Number of log files (and log dir size) on the slave increases continuously</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3561">DERBY-3561</a></td><td>testStartStopManagementFromApplication(org.apache.derbyTesting.functionTests.tests.management.ManagementMBeanTest)junit.framework.AssertionFailedError: expected:&lt;2&gt; but was:&lt;5&gt;</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3558">DERBY-3558</a></td><td>regression test failure in testDerbyJarAttributeAlpha - Security Exception</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3556">DERBY-3556</a></td><td>change derby.tests.trace property to print the name of the test before it runs it</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3554">DERBY-3554</a></td><td>Change Collation test to run DatabaseMetaDataTest, BatchUpdateTest,GroupByExpressionTest, and UpdateableResultSetTest for only one locale</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3551">DERBY-3551</a></td><td>Implement procedure SYSCS_UTIL.SYSCS_PREPARE_REPLICATION()</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3549">DERBY-3549</a></td><td>Unable to start slave mode after authentication failure on a previous startSlave attempt</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3548">DERBY-3548</a></td><td>NoClassDefFoundError failure in SystemPrivilegesPermissionTest for weme6.1</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3546">DERBY-3546</a></td><td>Failed to get database schemas of a JAR database</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3544">DERBY-3544</a></td><td>If NetworkServer fails to shutdown when run as a separate process by NetworkServerTestSetup, test run will hang</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3543">DERBY-3543</a></td><td>NetworkServerControl with options but no command does not give usage message</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3538">DERBY-3538</a></td><td>NullPointerException during execution for query with LEFT OUTER JOIN whose inner table selects all constants.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3531">DERBY-3531</a></td><td>DatabasePermission uses a JDK 1.4 method that is not present in J2ME/CDC/Foundation.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3527">DERBY-3527</a></td><td>The slave will not notice that a network cable is unplugged and will therefore reject failover/stopSlave commands</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3526">DERBY-3526</a></td><td>AsynchronousLogShipper#workToDo is blocked while the log shipper sends a log chunk</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3525">DERBY-3525</a></td><td>Remove unneeded code to get JDBC level in BrokeredConnection and BrokeredStatement classes</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3521">DERBY-3521</a></td><td>Functionality for skipping testsuites on certain platforms fails for the new management testsuite on phoneME advanced</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3520">DERBY-3520</a></td><td>convert views.sql to junit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3515">DERBY-3515</a></td><td>23 timeouts encountered while running management junit suite as part of full nightly runs.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3509">DERBY-3509</a></td><td>The replication log shipper is not notified when a new replication transmitter is instantiated in MC#handleException.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3508">DERBY-3508</a></td><td>Log receiver thread fails with NPE at failover when master has died</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3506">DERBY-3506</a></td><td>Add JMX testing with a security manager and investigate testing with JMX authentication.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3503">DERBY-3503</a></td><td>Change stress.multi to dump thread stacks before killing off testers with jdk 1.5 and higher</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3494">DERBY-3494</a></td><td>Move the setup of NormalizeResultSetNode into the NormalizeResultSetNode</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3489">DERBY-3489</a></td><td>Error message XRE04 does not include the right port number.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3469">DERBY-3469</a></td><td>Clob.length() doesn't detect a closed underlying connection in a consistent way</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3462">DERBY-3462</a></td><td>Require new permissions in o.a.d.security.SystemPermission to allow control to Derby's JMX management and to ensure information is not leaked through JMX</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3447">DERBY-3447</a></td><td>Shutdown on a database without stopping replication hangs</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3446">DERBY-3446</a></td><td>Make ResultSet.getStatement return the correct statement when created by a logical statement</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3431">DERBY-3431</a></td><td>DatabaseMetaData.getConnection returns the wrong connection when using connection pooling</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3420">DERBY-3420</a></td><td>The -ca option should be removed from ij and from the ij command usage line</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3409">DERBY-3409</a></td><td>Remove JDBC 2.0-specific topics from Reference Manual and merge implementation notes as needed</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3408">DERBY-3408</a></td><td>Wrong message when using SHOW in ij.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3401">DERBY-3401</a></td><td>Removing a ConnectionEventListener from a PooledConnection during its connectionClosed() callback causes other ConnectionEventListener callbacks to be missed</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3397">DERBY-3397</a></td><td>Derby 10.3.1.4 and 10.3.2.1 break scrollable result sets? Hibernate Query.setFirstResult and/or setMaxResults</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3390">DERBY-3390</a></td><td>SQLException thrown from user function kills network connection</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3385">DERBY-3385</a></td><td>Tests for JMX Management and Monitoring</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3381">DERBY-3381</a></td><td>"ERROR XSDA3: Limitation: Record cannot be updated or inserted due to lack of space on the page...." in suites.All</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3379">DERBY-3379</a></td><td>"No Current connection" on PooledConnection.getConnection() if pooled connection is reused during connectionClosed processing</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3373">DERBY-3373</a></td><td>SQL "distinct" and "order by" needed together</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3360">DERBY-3360</a></td><td>Invalid method java.lang.Integer &gt;&gt; void &lt;init&gt;(short) because java.lang.NoSuchMethodException: java.lang.Integer.&lt;init&gt;(short)</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3354">DERBY-3354</a></td><td>Select from large lob table with embedded gives OutOfMemoryError</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3347">DERBY-3347</a></td><td>ERROR XSDB3: Container information cannot change once written</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3338">DERBY-3338</a></td><td>CancelQueryTask.forgetContext() could be simplified.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3327">DERBY-3327</a></td><td>SQL roles: Implement authorization stack (and SQL session context to hold it)</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3320">DERBY-3320</a></td><td>Database creation and boot should fail if collation=TERRITORY_BASED and the selected locale is not supported</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3319">DERBY-3319</a></td><td>Logical connections do not check if a transaction is active on close</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3310">DERBY-3310</a></td><td>ASSERT in MergeSort.checkColumnTypes() disallow legal type conversions</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3307">DERBY-3307</a></td><td>NPE in PooledConnction event notification handling if a null listener is added</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3270">DERBY-3270</a></td><td>Delayed (on-demand) creation of current user schema makes select from view belonging to other schema fail.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3266">DERBY-3266</a></td><td>Not possible for non-db-owner to create a temporary table. "Get ERROR 42507: User 'USERB' can not perform the operation in schema 'SESSION'."</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3227">DERBY-3227</a></td><td>Remove final from all getConnection() methods in EmbeddedDataSource</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3223">DERBY-3223</a></td><td>SQL roles: make use of privileges granted to roles in actual privilege checking</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3219">DERBY-3219</a></td><td>Group by query with many aggregate columns and case statements fails with: ERROR XSDA7: Restore of a serializable or SQLData object of class , attempted to read more data than was originally stored</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3200">DERBY-3200</a></td><td>Developer's Guide: Add examples showing use of SQL authorization with user authentication</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3193">DERBY-3193</a></td><td>SQL roles: Add documentation</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3180">DERBY-3180</a></td><td>error XSDA3 when test is executing SYSCS_INPLACE_COMPRESS_TABLE in specific situation</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3151">DERBY-3151</a></td><td>Reduce dependency on NetworkServerControl in TestConfiguration</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3137">DERBY-3137</a></td><td>SQL roles: add catalog support</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3130">DERBY-3130</a></td><td>Reduce memory footprint of StoredRecordHeader</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3116">DERBY-3116</a></td><td>totalSpace not properly initialized in AllocPage</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3097">DERBY-3097</a></td><td>Unnecessary if statement can be removed from BaseActivation.getColumnFromNow</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3063">DERBY-3063</a></td><td>Extend the system function mechanism to support functions with multiple arguments</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3043">DERBY-3043</a></td><td>'Schema &lt;schemaname&gt; does not exist' when constraint used in table definition</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-3035">DERBY-3035</a></td><td>Cannot restore backups without BACKUP.HISTORY file</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2991">DERBY-2991</a></td><td>Index split deadlock</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2958">DERBY-2958</a></td><td>need to mention ClientDriver In Derby reference manual's java.sql.Driver interface section</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2892">DERBY-2892</a></td><td>Closing a resultset after retrieving a large &gt; 32665 bytes value with Network Server does not release locks</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2861">DERBY-2861</a></td><td>Thread safety issue in TableDescriptor</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2822">DERBY-2822</a></td><td>Add caching of store stream length in StoreStreamClob, if appropriate</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2750">DERBY-2750</a></td><td>Convert lang/declareGlobalTempTableJava.java to JUnit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2747">DERBY-2747</a></td><td>Reply incorrectly handles read() returning -1</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2514">DERBY-2514</a></td><td>convert lang/closed.java to junit</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2498">DERBY-2498</a></td><td>NullPointerException on ClientDataSource.getConnection() when ds.setdatabaseName was invalid</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2389">DERBY-2389</a></td><td>DOCS - Move Derby system and properties info from Tuning Guide into Reference Manual</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2388">DERBY-2388</a></td><td>DOCS - Reorder JDBC Reference section in Ref Manual</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2353">DERBY-2353</a></td><td>intermittent NPEs during DELETE ops in a reasonably large transaction</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2351">DERBY-2351</a></td><td>ORDER BY with expression with distinct in the select list returns incorrect result</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2320">DERBY-2320</a></td><td>Example in DEGREES function is not  appropriate.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2207">DERBY-2207</a></td><td>Improve usability of Derby's client/server security by implementing ANSI Roles</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-2085">DERBY-2085</a></td><td>Misleading error message for non-matching ORDER BY clause in queries with GROUP BY.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1944">DERBY-1944</a></td><td> jdbcapi/ParameterMappingTest.java test does not execute test for setObject(Blob/Clob) in DerbyNetClient</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1932">DERBY-1932</a></td><td>Reference Manual updates - JDBC Reference section</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1848">DERBY-1848</a></td><td>jdbcapi/SetQueryTimeoutTest.java fails on IBM  wctme 5.7</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1764">DERBY-1764</a></td><td>Rewrite stress.multi as a JUnit test</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1726">DERBY-1726</a></td><td>Make i18n/LocalizedDisplay.sql and i18n/LocalizedConnectionAttribute.sql behave equally on different platforms</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1670">DERBY-1670</a></td><td>Remove optional osgi.jar download by including equivalent jar from the apache incubator felix project in the Derby's svn</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1458">DERBY-1458</a></td><td>Add MessageBundleTest to build script to verify that there are no orphaned message ids</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1416">DERBY-1416</a></td><td>Message id J029 (CONN_RESTORE_FROM) does not have a matching message text</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1415">DERBY-1415</a></td><td>Message id J030 in reference.MessageId.java does not have a matching message</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1412">DERBY-1412</a></td><td>Possible values for derby.storage.rowLocking Derby engine is not currently documented eventhough the property is</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1411">DERBY-1411</a></td><td>DRDAConnThread uses SQLState.NO_SUCH_DATABASE, which has no matching message</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1387">DERBY-1387</a></td><td>Add JMX extensions to Derby</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1331">DERBY-1331</a></td><td>Derby's "set schema" behavior is not compliant with SQL 2003 Foundation spec.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1107">DERBY-1107</a></td><td>For existing databases JDBC metadata queries do not get updated properly  between maintenance versions.</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-1062">DERBY-1062</a></td><td>Change the internal implemetation of SYSCS_INPLACE_COMPRESS_TABLE to share existing alter table</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-961">DERBY-961</a></td><td>Error 22001 can include 'XX-RESOLVE-XX' which should be removed</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-719">DERBY-719</a></td><td>Calling SYSCS_INPLACE_COMPRESS_TABLE on SYS.SYSTABLES results in a lock timeout, with only a single connection active</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-576">DERBY-576</a></td><td>xaHelper in ij creates global id that is not the same across platforms</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-503">DERBY-503</a></td><td>Documentation should recommend using .newInstance() to instantiate JDBC driver</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-481">DERBY-481</a></td><td>implement SQL generated columns</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-269">DERBY-269</a></td><td>Provide some way to update index cardinality statistics (e.g. reimplement update statistics)</td>
</tr>
<tr>
<td><a href="http://issues.apache.org/jira/browse/DERBY-48">DERBY-48</a></td><td> A connection request that has a default schema that is being created by another transaction will fail to connect</td>
</tr>
</table>
</blockquote>
<h2>
<a name="Issues"></a>Issues</h2>
<blockquote>
<p>Compared with the previous release (10.4.2.0), Derby release 10.5.1.1 introduces the following incompatibilities. These merit your special attention.</p>
<ul>
<li>
<a href="#Note for DERBY-4073">
<p>Note for DERBY-4073: 
The method <tt>setSsl(int)</tt> has been removed from the client data source classes.
</p>
</a>
</li>
<li>
<a href="#Note for DERBY-4050">
<p>Note for DERBY-4050: 
Table growth may result from multi-threaded Clob updates before the fix for DERBY-4050.
</p>
</a>
</li>
<li>
<a href="#Note for DERBY-4042">
<p>Note for DERBY-4042: 
Format of file name arguments to the import procedures changed for
files with single quotes (') in their names.
</p>
</a>
</li>
<li>
<a href="#Note for DERBY-4008">
<p>Note for DERBY-4008: 
  After the change for DERBY-4008, applications may see a different error message when attempting to connect a 10.5 client to older revision servers (e.g. 10.4 and 10.3) with multibyte database names.
</p>
</a>
</li>
<li>
<a href="#Note for DERBY-3977">
<p>Note for DERBY-3977: 
A different exception is thrown by the embedded driver when trying to truncate a Clob with a too large length argument.
</p>
</a>
</li>
<li>
<a href="#Note for DERBY-3701">
<p>Note for DERBY-3701: 
  An error message will be logged to derby.log if the Network Server tracing file cannot be created.
  Starting with version 10.5, the Network Server will attempt to create the trace directory if it does not exist. Any intervening directories in the given path will also be created if possible.

</p>
</a>
</li>
<li>
<a href="#Note for DERBY-3652">
<p>Note for DERBY-3652: 
Derby now follows the SQL Standard rules for matching functions and procedures to Java methods.
</p>
</a>
</li>
<li>
<a href="#Note for DERBY-3420">
<p>Note for DERBY-3420: 
The <i>-ca</i> command line option has been removed from ij.
</p>
</a>
</li>
<li>
<a href="#Note for DERBY-3347">
<p>Note for DERBY-3347: 
A bug that could cause unrecoverable database corruption has been fixed.
</p>
</a>
</li>
<li>
<a href="#Note for DERBY-3327">
<p>Note for DERBY-3327: 
The effect of setting the current default schema (<code>SET SCHEMA
schemaname</code>) inside nested connection of a stored procedure or
function has been changed to comply with SQL standard semantics.</p>
</a>
</li>
<li>
<a href="#Note for DERBY-3319">
<p>Note for DERBY-3319: 
Exception is thrown when connection with uncommitted operations is closed.
</p>
</a>
</li>
<li>
<a href="#Note for DERBY-2351">
<p>Note for DERBY-2351: An ORDER BY clause of a DISTINCT query which specifies to order by a
column which was not in the DISTINCT list is now rejected, because the
intent of the query is ambiguous. Previously, Derby instead produced
non-distinct results.
Also, an ORDER BY clause which specifies a table-name-qualified column alias
is now rejected as invalid, where previously it was accepted.</p>
</a>
</li>
<li>
<a href="#Note for DERBY-2085">
<p>Note for DERBY-2085: 
Derby has improved the error message which is issued when an invalid
column reference is found in a grouped query. Derby now issues message
42Y36 instead of 42Y30. Furthermore, the wording of message 42Y36 has
been expanded to further explain the behavior.
</p>
</a>
</li>
<li>
<a href="#Note for DERBY-1062">
<p>Note for DERBY-1062: 
Applications will see a different error code and message when they attempt to call SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE on a table that does not exist. 

</p>
</a>
</li>
<li>
<a href="#Note for DERBY-48">
<p>Note for DERBY-48: 
In Derby, a user's <b>initial default schema</b> is named the same as
the user name, or APP if a user is not provided at connect time. This
schema is implicitly auto-created the first time a schema object is
created in that schema.
</p>
</a>
</li>
</ul>
<hr>
<h3>
<a name="Note for DERBY-4073"></a>Note for DERBY-4073</h3>
<blockquote>

<!-- 
  SUMMARIZE THE ISSUE. This is a one line summary of the issue.

  For instance:

  Applications may no longer open two InputStreams on the same ResultSet column.
-->


<h4>Summary of Change</h4>

<p>
The method <tt>setSsl(int)</tt> has been removed from the client data source classes.
</p>


<!-- 
  DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS.

  For instance:

  In the previous release, applications were able to open two
  InputStreams on the same column. Depending on how these streams
  interacted, the value siphoned out of the column was erratic. Now
  Derby raises a SQLException when the application attempts to create
  the second InputStream.
-->


<h4>Symptoms Seen by Applications Affected by Change</h4>

<p>
The application will either fail to compile, or experience a <tt>NoSuchMethodError</tt>.
Only applications invoking the removed method are affected.
</p>


<!-- 
  OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY.

  For instance:

  Applications which open two InputStreams on the ResultSet column now
  fail.
-->


<h4>Incompatibilities with Previous Release</h4>

<p>
The method <tt>setSsl(int)</tt> can no longer be used to configure SSL
with the client data sources.
</p>


<!-- 
  DESCRIBE WHY THE CHANGE WAS MADE.

  For instance:

  The previous behavior violated the JDBC standard. The new behavior
  is correct.
-->


<h4>Rationale for Change</h4>

<p>
Having two <tt>setSsl</tt>-methods caused choice problems for some applications
using Derby data sources and also configuring the data source through
introspection, since there were two methods called setSsl;
<tt>setSsl(int)</tt> and <tt>setSsl(String)</tt>. 
</p>


<!-- 
  OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR
  OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE.

  For instance:

  Users must recode applications which open multiple streams on the same column.
-->


<h4>Application Changes Required</h4>

<p>
Use <tt>setSsl(String)</tt> instead of <tt>setSsl(int)</tt>.
</p>



</blockquote>
<hr>
<h3>
<a name="Note for DERBY-4050"></a>Note for DERBY-4050</h3>
<blockquote>

<!-- 

-->


<h4>Summary of Change</h4>

<p>
Table growth may result from multi-threaded Clob updates before the fix for DERBY-4050.
</p>


<!-- 

-->


<h4>Symptoms Seen by Applications Affected by Change</h4>

<p>
Before the fix for DERBY-4050, applications may have seen growth in the size of the database, particularly the size of the dat files for Clob tables, when doing updates to the Clob tables from multiple threads.  The fix for DERBY-4050 will prevent future growth but will not reclaim space consumed by the bug in the past.  To reclaim the space, a full offline compress of the clob table is needed. See the Derby documentation for usage of  <A HREF="http://db.apache.org/derby/docs/10.4/ref/rrefaltertablecompress.html"> SYSCS_UTIL.SYSCS_COMPRESS_TABLE </A>

 

</p>


<!-- 
  OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY.

  For instance:

  Applications which open two InputStreams on the ResultSet column now
  fail.
-->


<h4>Incompatibilities with Previous Release</h4>

<p>
none
</p>


<!-- 
  DESCRIBE WHY THE CHANGE WAS MADE.

  For instance:

  The previous behavior violated the JDBC standard. The new behavior
  is correct.
-->


<h4>Rationale for Change</h4>

<p>
DERBY-4050 fixes a bug in space reclamation. 
</p>


<!-- 
  OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR
  OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE.

  For instance:

  Users must recode applications which open multiple streams on the same column.
-->


<h4>Application Changes Required</h4>

<p>
The compress table should only need to be run once if the fix for DERBY-4050 has been applied.  No application changes should be required.
</p>



</blockquote>
<hr>
<h3>
<a name="Note for DERBY-4042"></a>Note for DERBY-4042</h3>
<blockquote>

<!-- 
  SUMMARIZE THE ISSUE. This is a one line summary of the issue.

  For instance:

  Applications may no longer open two InputStreams on the same ResultSet column.
-->


<h4>Summary of Change</h4>

<p>
Format of file name arguments to the import procedures changed for
files with single quotes (') in their names.
</p>


<!-- 
  DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS.

  For instance:

  In the previous release, applications were able to open two
  InputStreams on the same column. Depending on how these streams
  interacted, the value siphoned out of the column was erratic. Now
  Derby raises a SQLException when the application attempts to create
  the second InputStream.
-->


<h4>Symptoms Seen by Applications Affected by Change</h4>

<p>
In the previous release, applications that imported data from a file
whose file name contained a single quote (') character would fail
unless they replaced each single quote in the file name argument to
the import procedure with two single quotes. Now this has changed and
Derby does not understand the file name argument unless it has the
same number of single quote characters as the actual file
name. Applications that worked around the problems in earlier releases
by adding extra single quotes, will now see exceptions like the
following:
</p>


<pre>
ERROR XIE04: Data file not found: Rock''n''roll.csv
</pre>


<p>
Applications that do not import files whose names contain single
quotes will not be affected by this change.
</p>

<!-- 
  OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY.

  For instance:

  Applications which open two InputStreams on the ResultSet column now
  fail.
-->


<h4>Incompatibilities with Previous Release</h4>

<p>
Previous releases required file name arguments to the import
procedures to double each occurrence of a single quote in the file
name, like this when importing a file
called <tt>C:/Chip's/TERMS.dat</tt>:
</p>


<pre>
PreparedStatement ps = conn.prepareStatement(
    "CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE(null,'MY_TABLE',?,null,null,null,0)");
ps.setString(1, "C:/Chip''s/TERMS.dat");
ps.execute();
</pre>


<p>
In this release the above code would result in the following exception:
</p>


<pre>
ERROR XIE04: Data file not found: C:/Chip''s/TERMS.dat
</pre>


<p>
In this release, applications must use the actual name of the file,
like this:
</p>


<pre>
PreparedStatement ps = conn.prepareStatement(
    "CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE(null,'MY_TABLE',?,null,null,null,0)");
ps.setString(1, "C:/Chip's/TERMS.dat");
ps.execute();
</pre>

<!-- 
  DESCRIBE WHY THE CHANGE WAS MADE.

  For instance:

  The previous behavior violated the JDBC standard. The new behavior
  is correct.
-->


<h4>Rationale for Change</h4>

<p>
It is more intuitive if the file name arguments match the actual file
names. Also, in the previous releases there were some combinations of
single quotes and other special characters (like double quotes) that
it was not possible to get to work even with the workaround.
</p>


<!-- 
  OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR
  OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE.

  For instance:

  Users must recode applications which open multiple streams on the same column.
-->


<h4>Application Changes Required</h4>

<p>
Applications that work around the issue in previous releases by adding
extra single quotes to the file name arguments, must be changed so
that they do not add extra single quote characters.
</p>



</blockquote>
<hr>
<h3>
<a name="Note for DERBY-4008"></a>Note for DERBY-4008</h3>
<blockquote>

<!-- 
  SUMMARIZE THE ISSUE. This is a one line summary of the issue.

  For instance:

  Applications may no longer open two InputStreams on the same ResultSet column.
-->


<h4>Summary of Change</h4>

<p>
  After the change for DERBY-4008, applications may see a different error message when attempting to connect a 10.5 client to older revision servers (e.g. 10.4 and 10.3) with multibyte database names.
</p>


<!-- 
  DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS.

  For instance:

  In the previous release, applications were able to open two
  InputStreams on the same column. Depending on how these streams
  interacted, the value siphoned out of the column was erratic. Now
  Derby raises a SQLException when the application attempts to create
  the second InputStream.
-->


<h4>Symptoms Seen by Applications Affected by Change</h4>

<p>
In previous releases  when attempting to connect to network server using a multibyte database name the connect would fail with the the exception:<BR>

<code>
SQLSTATE:22005
java.sql.SQLDataException: Unicode string cannot convert to Ebcdic string
</code>

<BR>
This message will not change for 10.5 clients connecting to 10.5 servers.

After the change for DERBY-4008 the error message may change when connecting 10.5 clients to older revision server. Instead the message will be:<BR>

<code>
SQLSTATE:08006
java.sql.SQLNonTransientConnectionException: A network protocol error was encountered and the connection has been terminated: A PROTOCOL Data Stream Syntax Error was detected.  Reason: 0x8,464. Plaintext connection attempt to an SSL enabled
server?
</code>
<BR>

with a chained SQLException: <BR>

<code>
SQLSTATE:22005
java.sql.SQLDataException: Unicode string cannot convert to Ebcdic string
</code>
<BR>

The protocol error will also show on the server console.
</p>


<!-- 
  OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY.

  For instance:

  Applications which open two InputStreams on the ResultSet column now
  fail.
-->


<h4>Incompatibilities with Previous Release</h4>

<p>
The client error message when attempting to connect with multibyte database names will change with mixed revision client/server as described in the previous section.
</p>


<!-- 
  DESCRIBE WHY THE CHANGE WAS MADE.

  For instance:

  The previous behavior violated the JDBC standard. The new behavior
  is correct.
-->


<h4>Rationale for Change</h4>

<p>
This change was made in preparation for fixing DERBY-728 to allow multibyte characters in the database name.  The change in error message with back revision servers was considered an acceptable change and necessary to fix DERBY-728.

</p>


<!-- 
  OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR
  OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE.

  For instance:

  Users must recode applications which open multiple streams on the same column.
-->


<h4>Application Changes Required</h4>

<p>
To reveert to the previous error message, users can upgrade their server to the latest on the 10.3 or 10.4 branch, or upgrade their server to 10.5. Otherwise applications expecting the old error message should upon gettting the SQLState: 08006 message retrieve the chained exception with SQLExcepiton.getNextMessage() and then process the message as before.


</p>



</blockquote>
<hr>
<h3>
<a name="Note for DERBY-3977"></a>Note for DERBY-3977</h3>
<blockquote>

<!-- 
  SUMMARIZE THE ISSUE. This is a one line summary of the issue.

  For instance:

  Applications may no longer open two InputStreams on the same ResultSet column.
-->


<h4>Summary of Change</h4>

<p>
A different exception is thrown by the embedded driver when trying to truncate a Clob with a too large length argument.
</p>


<!-- 
  DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS.

  For instance:

  In the previous release, applications were able to open two
  InputStreams on the same column. Depending on how these streams
  interacted, the value siphoned out of the column was erratic. Now
  Derby raises a SQLException when the application attempts to create
  the second InputStream.
-->


<h4>Symptoms Seen by Applications Affected by Change</h4>

<p>
In the previous release, the embedded driver would throw an exception with
SQLState XJ076 when trying to truncate a Clob with a length argument bigger
than the Clob length. Now, it will throw the same exception as the client
driver, XJ079. The error messages also differ:
</p>


<pre>
Before: XJ076: The position argument '18149' exceeds the size of the BLOB/CLOB.
Now: XJ079: The length specified '18149' exceeds the size of the BLOB/CLOB.
</pre>


<!-- 
  OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY.

  For instance:

  Applications which open two InputStreams on the ResultSet column now
  fail.
-->


<h4>Incompatibilities with Previous Release</h4>

<p>
Applications catching a specific exception based on SQLState may behave
differently. The incompatibility can only be seen if the application calls
<code>Clob.truncate</code> with the embedded driver.
</p>


<!-- 
  DESCRIBE WHY THE CHANGE WAS MADE.

  For instance:

  The previous behavior violated the JDBC standard. The new behavior
  is correct.
-->


<h4>Rationale for Change</h4>

<p>
To make the embedded and the client driver consistent.
</p>


<!-- 
  OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR
  OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE.

  For instance:

  Users must recode applications which open multiple streams on the same column.
-->


<h4>Application Changes Required</h4>

<p>
Look for SQLState XJ079 instead of XJ076 when <code>Clob.truncate()</code> is called.
</p>


</blockquote>
<hr>
<h3>
<a name="Note for DERBY-3701"></a>Note for DERBY-3701</h3>
<blockquote>

<!-- 
  SUMMARIZE THE ISSUE. This is a one line summary of the issue.

  For instance:

  Applications may no longer open two InputStreams on the same ResultSet column.
-->


<h4>Summary of Change</h4>

<p>
  An error message will be logged to derby.log if the Network Server tracing file cannot be created.
  Starting with version 10.5, the Network Server will attempt to create the trace directory if it does not exist. Any intervening directories in the given path will also be created if possible.

</p>


<!-- 
  DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS.

  For instance:

  In the previous release, applications were able to open two
  InputStreams on the same column. Depending on how these streams
  interacted, the value siphoned out of the column was erratic. Now
  Derby raises a SQLException when the application attempts to create
  the second InputStream.
-->


<h4>Symptoms Seen by Applications Affected by Change</h4>

<p>
Before the fix for DERBY-3110, if derby.drda.traceAll was set to true
and the derby.drda.traceDirectory was set to a non-existent directory,
no tracing would occur and no error would occur. After the fix for
DERBY-3110, an error "java.lang.Exception:
DRDA_UnableToAccept.S:Unable to accept connections" would occur and
the client would hang and no tracing would occur.  With this fix for
version 10.5 and higher, the Network Server will attempt to create the
trace directory if possible. For 10.4.2 (and the next release on the
10.3 branch), the Network Server will still not try to create the directory. For all
these releases the Network Server will print an error on session
connect if there is any problem creating the trace file, but the
Network Server will not cause the session connection to fail.  Users who have trace turned on and the trace directory set to a non-existent directory may now see exceptions in the derby.log on connect indicating that the trace file is not found <b> or </b> with 10.5 or higher they may see tracing occur where it did not before.

</p>


<!-- 
  OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY.

  For instance:

  Applications which open two InputStreams on the ResultSet column now
  fail.
-->


<h4>Incompatibilities with Previous Release</h4>

<p>
Tracing properties will not be ignored or cause the client to hang if the trace directory is set to a non-existent directory.  

</p>


<!-- 
  DESCRIBE WHY THE CHANGE WAS MADE.

  For instance:

  The previous behavior violated the JDBC standard. The new behavior
  is correct.
-->


<h4>Rationale for Change</h4>

<p>

The tracing properties should not be summarily ignored or cause the client to hang if the trace directory does not exist.  
</p>


<!-- 
  OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR
  OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE.

  For instance:

  Users must recode applications which open multiple streams on the same column.
-->


<h4>Application Changes Required</h4>

<p>
Applications that counted on the derby.drda.traceAll property being ignored if derby.drda.traceDirectory was set to a non-existent directory, need to turn tracing off or they may now see many errors in the derby.log or large amounts of tracing.

</p>



</blockquote>
<hr>
<h3>
<a name="Note for DERBY-3652"></a>Note for DERBY-3652</h3>
<blockquote>


<h4>Summary of Change</h4>

<p>
Derby now follows the SQL Standard rules for matching functions and procedures to Java methods.
</p>


<!-- 
  DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS.

  For instance:

  In the previous release, applications were able to open two
  InputStreams on the same column. Depending on how these streams
  interacted, the value siphoned out of the column was erratic. Now
  Derby raises a SQLException when the application attempts to create
  the second InputStream.
-->


<h4>Symptoms Seen by Applications Affected by Change</h4>

<p>
In previous releases, Derby matched SQL routines to Java methods using
an irregular set of rules which were hard to describe. At the same
time, the user documentation falsely claimed that Derby followed the
signature matching rules in the ANSI/ISO SQL Standard. Derby now
conforms to the Standard behavior. In general, the Standard behavior
is easier to understand and it is now possible to be confident that a
function or procedure definition will match the desired Java
method. In certain corner cases, however, methods which used to
resolve will no longer resolve. The Standard resolution rules are
described in the Derby Reference Guide.
</p>


<h4>Incompatibilities with Previous Release</h4>

<p>
Routines may resolve differently. Here are the differences listed in
declining order of likelihood:
</p>


<ol>

<li>
<b>Ambiguity</b> - Some SQL routines may match multiple Java
methods now. This raises an error according to the Standard. This is
most likely to affect the following matches:
 <ul>
   
<li>Matching INTEGER to Java <i>int</i> and <i>Integer</i>.</li>
 
</ul>

</li>

<li>
<b>Failure</b> - Some SQL routines may fail to match Java
methods. This is most likely to affect the following matches:
 <ul>
   
<li>SMALLINT no longer matches <i>int</i>.</li>
   
<li>INTEGER no longer matches <i>long</i>.</li>
   
<li>BIGINT no longer matches <i>float</i>.</li>
   
<li>REAL no longer matches <i>double</i>.</li>
   
<li>VARCHAR no longer matches <i>Object</i>.</li>
   
<li>NUMERIC no longer matches <i>Object</i>.</li>
 
</ul>

</li>

<li>
<b>Change</b> - Some SQL routines may resolve to different Java
methods now.</li>

<li>
<b>Success</b> - Some SQL routines may now resolve even though
previously they did not resolve to Java methods. This is most likely
to affect the following matches:
 <ul>
   
<li>BLOB now matches <i>Blob</i>.</li>
   
<li>CLOB now matches <i>Clob</i>.</li>
 
</ul>

</li>

</ol>



<h4>Rationale for Change</h4>

<p>
The previous behavior violated the SQL Standard and was very hard to explain. The new behavior
is correct and easy to describe.
</p>



<h4>Application Changes Required</h4>

<p>
This release includes a lint tool, <i>SignatureChecker</i>. If your
application uses SQL functions and/or procedures, you should run this
tool against your databases in order to find routines which no longer
match. To run the tool, make sure that your classpath contains the 10.5 jar files, including <i>derbytools.jar</i>.
</p>



<p>
On a J2SE platform, run the lint tool as follows (where
CONNECTION_URL_TO_DATABASE is the connection URL you would use in
order to obtain a connection via <i>DriverManager.getConnection()</i>):
</p>


<blockquote>
<pre>
  java org.apache.derby.tools.SignatureChecker CONNECTION_URL_TO_DATABASE
</pre>
</blockquote>


<p>
Alternatively, you can invoke the tool via <i>derbyrun.jar</i>. E.g.:
</p>


<blockquote>
<pre>
  java -jar derbyrun.jar SignatureChecker "jdbc:derby:myDB" 
</pre>
</blockquote>


<p>
On a J2ME platform, run the lint tool as follows (where
DATABASE_NAME is the database name you would set via
<i>EmbeddedSimpleDataSource.setDatabaseName()</i>):
</p>


<blockquote>
<pre>
  java org.apache.derby.tools.SignatureChecker DATABASE_NAME
</pre>
</blockquote>


<p>
The tool examines every routine registered in the database and
prints out results like the following:
</p>


<blockquote>
<pre>
Found a matching method for: "APP"."DOINSERT"( )
Found a matching method for: "APP"."DOINSERTANDCOMMIT"( )
Found a matching method for: "APP"."APPENDFOOANDBAR"( VARCHAR )
Unresolvable routine: "APP"."IDONTEXIST"( VARCHAR , INTEGER ).
Detailed reason: No method was found that matched the method call z.iDontExist(java.lang.String, int),
tried all combinations of object and primitive types and any possible
type conversion for any parameters the method call may have.
The method might exist but it is not public and/or static, or the parameter types are not method invocation convertible.
Found a matching method for: "APP"."RUNDDL"( VARCHAR )
Unresolvable routine: "APP"."TABFUNCDOESNTEXIST"( VARCHAR , BIGINT ).
Detailed reason: No method was found that matched the method call
org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest.appendFooAndBar(java.lang.String, long),
tried all combinations of object and primitive types and any possible
type conversion for any parameters the method call may have.
The method might exist but it is not public and/or static, or the parameter types are not method invocation convertible.
</pre>
</blockquote>


<p>
In the example above, the lint tool found matches for all routines
except for the functions <i>app.iDontExit</i> and <i>app.tabFuncDoesntExist</i>.
If the lint tool cannot find a match for one of your functions or
procedures, it tells you what signature it expected to find. You need to adjust your application in one of
the following ways:
</p>


<ol>

<li>
<b>Method</b> - Change the signature of your Java method to match
  the signature suggested by the lint tool.</li>

<li>
<b>Routine</b> - Drop and recreate your function/procedure so that
  its arguments and return type match your Java method according to
  the Standard rules described in the Reference Guide.</li>

</ol>



</blockquote>
<hr>
<h3>
<a name="Note for DERBY-3420"></a>Note for DERBY-3420</h3>
<blockquote>


<h4>Summary of Change</h4>

<p>
The <i>-ca</i> command line option has been removed from ij.
</p>



<h4>Symptoms Seen by Applications Affected by Change</h4>

<p>
Applications which attempt to pass JDBC connection attributes using the -ca
flag to ij will be rejected, with a usage message such as:
<blockquote>
Usage: java org.apache.derby.tools.ij [-p propertyfile] [inputfile]
</blockquote>

</p>



<h4>Incompatibilities with Previous Release</h4>

<p>
Applications which attempt to pass JDBC connection attributes using the -ca
flag to ij will fail, as that flag is no longer recognized by ij.
</p>



<h4>Rationale for Change</h4>

<p>
It used to be that you could not specify both client and embedded attributes
in the connection URL. Since Derby now supports such combinations of
attributes in the connection URL, the community decided that the -ca option
doesn't really add value and so it has been removed.
</p>


<h4>Application Changes Required</h4>

<p>
Applications should include connection attributes in the connection URL. For
example:
<blockquote>
    connect 'jdbc:derby:myDB;territory=no_NO;collation=TERRITORY_BASED;create=true';
</blockquote>

</p>



</blockquote>
<hr>
<h3>
<a name="Note for DERBY-3347"></a>Note for DERBY-3347</h3>
<blockquote>

<!-- 
  SUMMARIZE THE ISSUE. This is a one line summary of the issue.

  For instance:

  Applications may no longer open two InputStreams on the same ResultSet column.
-->


<h4>Summary of Change</h4>

<p>
A bug that could cause unrecoverable database corruption has been fixed.
</p>


<!-- 
  DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS.

  For instance:

  In the previous release, applications were able to open two
  InputStreams on the same column. Depending on how these streams
  interacted, the value siphoned out of the column was erratic. Now
  Derby raises a SQLException when the application attempts to create
  the second InputStream.
-->


<h4>Symptoms Seen by Applications Affected by Change</h4>

<p>
A bug that could cause database corruption was introduced in the 10.3
codeline and affects the following releases:
</p>


<ul>
  
<li>Apache Derby 10.3.1.4</li>
  
<li>Apache Derby 10.3.2.1</li>

</ul>


<p>
Users who are hit by this bug may experience exceptions at various
times during execution of SQL statements, booting or shutdown of a
database, or during checkpointing. It may result in a number of
different error messages, including any of these:
</p>


<pre>
ERROR XSDB3: Container information cannot change once written: was 0, now 80
ERROR XSDG1: Page Page(1039,Container(0, 5856)) could not be written to disk, please check if disk is full.
ERROR XSDG2: Invalid checksum on Page Page(0,Container(0, 1313))
ERROR XSDG3: Meta-data for Container org.apache.derby.impl.store.raw.data.RAFContainer4@1afb0c7 could not be accessed
ERROR XSLA1: Log Record has been sent to the stream, but it cannot be applied to the store (Object null). This may cause recovery problems also.
</pre>

<!-- 
  OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY.

  For instance:

  Applications which open two InputStreams on the ResultSet column now
  fail.
-->


<h4>Incompatibilities with Previous Release</h4>

<p>
None.
</p>


<!-- 
  DESCRIBE WHY THE CHANGE WAS MADE.

  For instance:

  The previous behavior violated the JDBC standard. The new behavior
  is correct.
-->


<h4>Rationale for Change</h4>

<p>
Database corruption is bad.
</p>


<!-- 
  OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR
  OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE.

  For instance:

  Users must recode applications which open multiple streams on the same column.
-->


<h4>Application Changes Required</h4>

<p>
No changes are required. However, since the database corruption may go
unnoticed for a while, users may want to check the consistency of
their databases after upgrading Derby. The process is described on the
following wiki page:
<a href="http://wiki.apache.org/db-derby/DatabaseConsistencyCheck">
http://wiki.apache.org/db-derby/DatabaseConsistencyCheck
</a>. If a corruption is detected, restoring the database from backup
is the only reliable way to recover.
</p>



</blockquote>
<hr>
<h3>
<a name="Note for DERBY-3327"></a>Note for DERBY-3327</h3>
<blockquote>

<!-- 
  SUMMARIZE THE ISSUE. This is a one line summary of the issue.

  For instance:

  Applications may no longer open two InputStreams on the same ResultSet column.
-->


<h4>Summary of Change</h4>

<p>
The effect of setting the current default schema (<code>SET SCHEMA
schemaname</code>) inside nested connection of a stored procedure or
function has been changed to comply with SQL standard semantics.</p>

<p>
Previously, setting the schema in a nested connection would have an
effect on the current default schema also in the SQL connection of the
caller. The SQL standard requires that the value of the default
current schema at the time of the call be reestablished when the call
is completed. This is now implemented.</p>

<p>
If the current schema is dropped by a stored procedure or function,
the current schema as well as the saved values of the callers will be
reset to the initial default schema of the root connection.</p>

<!-- 
  DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS.

  For instance:

  In the previous release, applications were able to open two
  InputStreams on the same column. Depending on how these streams
  interacted, the value siphoned out of the column was erratic. Now
  Derby raises a SQLException when the application attempts to create
  the second InputStream.
-->


<h4>Symptoms Seen by Applications Affected by Change</h4>

The current default schema of a connection which calls a stored
procedure or function which sets the current schema may be different
after the return.


<!-- 
  DESCRIBE WHY THE CHANGE WAS MADE.

  For instance:

  The previous behavior violated the JDBC standard. The new behavior
  is correct.
-->

<h4>Rationale for Change</h4>

<p>
SQL standard compliance.
</p>


<!-- 
  OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR
  OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE.

  For instance:

  Users must recode applications which open multiple streams on the same column.
-->


<h4>Application Changes Required</h4>
If the application relies on a stored procedure to change the current
default schema, this must now be done in the calling connection instead.
</blockquote>
<hr>
<h3>
<a name="Note for DERBY-3319"></a>Note for DERBY-3319</h3>
<blockquote>

<!-- 
  SUMMARIZE THE ISSUE. This is a one line summary of the issue.

  For instance:

  Applications may no longer open two InputStreams on the same ResultSet column.
-->


<h4>Summary of Change</h4>

<p>
Exception is thrown when connection with uncommitted operations is closed.
</p>


<!-- 
  DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS.

  For instance:

  In the previous release, applications were able to open two
  InputStreams on the same column. Depending on how these streams
  interacted, the value siphoned out of the column was erratic. Now
  Derby raises a SQLException when the application attempts to create
  the second InputStream.
-->


<h4>Symptoms Seen by Applications Affected by Change</h4>

<p>
In the previous release, applications could close a connection
obtained from Derby's implementations of
<code>javax.sql.DataSource</code> or
<code>javax.sql.ConnectionPoolDataSource</code>, even if the
connection had uncommitted operations. Now, Derby raises an
<code>SQLException</code> when an attempt to close a connection with
an active transaction is made. The exception will have SQLState 25001,
and its message will say the following:
</p>


<pre>
java.sql.SQLException: Cannot close a connection while a transaction is still active.
</pre>


<!-- 
  OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY.

  For instance:

  Applications which open two InputStreams on the ResultSet column now
  fail.
-->


<h4>Incompatibilities with Previous Release</h4>

<p>
Applications that close connections with active transactions now fail.
</p>


<!-- 
  DESCRIBE WHY THE CHANGE WAS MADE.

  For instance:

  The previous behavior violated the JDBC standard. The new behavior
  is correct.
-->


<h4>Rationale for Change</h4>

<p>
The previous behaviour was not consistent with the behaviour of
connection objects obtained from <code>java.sql.DriverManager</code>,
which already raise an exception in such a situation. The previous
behaviour could also cause resource leaks because there is no way to
free the resources held by an active transaction once its connection
object has been closed.
</p>


<!-- 
  OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR
  OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE.

  For instance:

  Users must recode applications which open multiple streams on the same column.
-->


<h4>Application Changes Required</h4>

<p>
Users must call <code>commit()</code> or <code>rollback()</code>, or
use auto-commit, before attempting to close a connection with
uncommitted operations.
</p>


</blockquote>
<hr>
<h3>
<a name="Note for DERBY-2351"></a>Note for DERBY-2351</h3>
<blockquote>
<!-- 
  SUMMARIZE THE ISSUE. This is a one line summary of the issue.

  For instance:

  Applications may no longer open two InputStreams on the same ResultSet column.
-->

<h4>Summary of Change</h4>

<p>An ORDER BY clause of a DISTINCT query which specifies to order by a
column which was not in the DISTINCT list is now rejected, because the
intent of the query is ambiguous. Previously, Derby instead produced
non-distinct results.
Also, an ORDER BY clause which specifies a table-name-qualified column alias
is now rejected as invalid, where previously it was accepted.</p>
<!-- 
  DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS.

  For instance:

  In the previous release, applications were able to open two
  InputStreams on the same column. Depending on how these streams
  interacted, the value siphoned out of the column was erratic. Now
  Derby raises a SQLException when the application attempts to create
  the second InputStream.
-->

<h4>Symptoms Seen by Applications Affected by Change</h4>

<h5>New rules for DISTINCT and ORDER BY</h5>

<p>
Applications which specify certain combinations of SELECT DISTINCT with
ORDER BY will now receive an error message, whereas formerly such applications
received non-distinct results.</p>

<p>As an example, take the following: </p>

<p style="font-family: monospace;">
create table person (name varchar(10), age int);<br>
insert into person values ('John', 10);<br>
insert into person values ('John', 30);<br>
insert into person values ('Mary', 20);<br>

<br>
SELECT DISTINCT name FROM person ORDER BY age;<br>

</p>

<p>The query above is now rejected, with the error message:</p>

<blockquote>
	ERROR 42879: The ORDER BY clause may not contain column 'AGE',
	since the query specifies DISTINCT and that column does not appear
	in the query result.
</blockquote>

<p>If the AGE column is included in the DISTINCT list in the above query,
there is no ambiguity</p>

<h5>New column alias rules</h5>

<p>
Applications which specify a column alias for a column in the SELECT
statement, and which specify an ORDER BY clause which specifies that
column alias qualified by the table name, will now receive an error
indicating that the ORDER BY clause is invalid.
</p>

<p>As an example, take the following: </p>

<p style="font-family: monospace;">  create table t1 (i int, j int);<br>
  select t1.id as idcolumn1, t1.id as idcolumn2 from t1 order by t1.idcolumn1, t1.idcolumn2;</p>

<p>This query is now rejected, as there is no column named 'idcolumn1'
in table 't1'. The error message is:</p>

<blockquote>
	ERROR 42X04: Column 'T1.IDCOLUMN1' is either not in any table in
	the FROM list or appears within a join specification and is outside
	the scope of the join specification or appears in a HAVING clause
	and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE 
	statement then 'T1.IDCOLUMN1' is not a column in the target table.
</blockquote>

<p>Valid forms of the query above are:</p>

<p style="font-family: monospace;">
  select t1.id as idcolumn1, t1.id as idcolumn2 from t1 order by idcolumn1, idcolumn2;</p>

<p>or</p>

<p style="font-family: monospace;">
  select t1.id as idcolumn1, t1.id as idcolumn2 from t1 order by t1.id, t1.id;</p>


<h4>Rationale for Change</h4>

<p>When the query ambiguously specifies both DISTINCT and ORDER BY, Derby
was unsure whether to return the rows properly ordered, but non-distinct,
or to return a distinct set of rows, but in an unknown order. Since no
clear resolution of the ambiguity could be found, we chose instead to
reject the query.</p>

<p>The rules for resolving column references in ORDER BY clauses have been
enhanced to consider column aliases and column names more fully.
Derby now uses different resolution rules depending on whether
the ORDER BY column reference is table.column, or just column:
<ul>
	
<li>if the table name is provided, we match against the
	underlying table name, and don't consider any aliases</li>
	
<li>if the table name is NOT provided, we first match against
	the alias name, if present, and if no alias name matches
	then we match against the underlying source column name. </li>

</ul>

</p>
<!-- 
  OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR
  OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE.

  For instance:

  Users must recode applications which open multiple streams on the same column.
-->

<h4>Application Changes Required</h4>

<p>
A query which specifies ordering by a non-distinct column should instead
include the ORDER BY column in the DISTINCT list, to resolve the ambiguity
about which values of that column should be used to distinctly identify
the resulting rows.</p>

<p>
A query which specifies table-name.alias-name should be rewritten to specify
either simply alias-name, or table-name.column-name.
</p>

</blockquote>
<hr>
<h3>
<a name="Note for DERBY-2085"></a>Note for DERBY-2085</h3>
<blockquote>

<h4>Summary of Change</h4>

<p>
Derby has improved the error message which is issued when an invalid
column reference is found in a grouped query. Derby now issues message
42Y36 instead of 42Y30. Furthermore, the wording of message 42Y36 has
been expanded to further explain the behavior.
</p>

<p>
Consider the table
</p>

<blockquote>
<code>
CREATE TABLE t (i INT, j INT)
</code>
</blockquote>

<p>
and consider the following query:
</p>

<blockquote>
<code>
SELECT i FROM t GROUP BY i ORDER BY j
</code>
</blockquote>

<p>
In Derby releases 10.2, 10.3, and 10.4,
this query gives the following error message:
</p>

<blockquote>
<code>

ERROR 42Y30: The SELECT list of a grouped query contains at least one invalid expression. If a SELECT list has a GROUP BY, the list may only contain valid grouping expressions and valid aggregate expressions.
</code>
</blockquote>

<p>
This is misleading since there is no invalid expression in the SELECT
list. It is the ORDER BY clause that is wrong.
In Derby 10.5, this query will now give the following error message, which is
a revised version of the message issued by 10.1 (that is, Derby 10.5 behaves
more like Derby 10.1 in this respect):
</p>

<blockquote>
<code>
ERROR 42Y36: Column reference 'J' is invalid, or is part of an invalid expression.  For a SELECT list with a GROUP BY, the columns and expressions being selected may only contain valid grouping expressions and valid aggregate expressions.
</code>
</blockquote>


<h4>Symptoms Seen by Applications Affected by Change</h4>

<p>
An application which issued a grouped select statement with an invalid
column reference in the order by clause may now receive a different error
message than it did in 10.4.
</p>


<h4>Rationale for Change</h4>

<p>
We feel that message 42Y36 is more helpful to the user in explaining the
problem with the invalid query.
</p>


</blockquote>
<hr>
<h3>
<a name="Note for DERBY-1062"></a>Note for DERBY-1062</h3>
<blockquote>

<!-- 
  SUMMARIZE THE ISSUE. This is a one line summary of the issue.

  For instance:

  Applications may no longer open two InputStreams on the same ResultSet column.
-->


<h4>Summary of Change</h4>

<p>
Applications will see a different error code and message when they attempt to call SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE on a table that does not exist. 

</p>


<!-- 
  DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS.

  For instance:

  In the previous release, applications were able to open two
  InputStreams on the same column. Depending on how these streams
  interacted, the value siphoned out of the column was erratic. Now
  Derby raises a SQLException when the application attempts to create
  the second InputStream.
-->


<h4>Symptoms Seen by Applications Affected by Change</h4>

<p>
Applications will see a different error code and message when they attempt to call SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE on a table that does not exist. 
The new error code and message will be 
ERROR 42Y55: 'ALTER TABLE' cannot be performed on 'MissingTableName' because it does not exist. 
The old error code and message used to be 
ERROR 42X05: Table/View 'MissingTableName' does not exist. 
</p>


<!-- 
  OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY.

  For instance:

  Applications which open two InputStreams on the ResultSet column now
  fail.
-->


<h4>Incompatibilities with Previous Release</h4>

<p>
The SQL exception code in the previous release was 42X05 and error message was "Table/View 'MissingTableName' does not exist."
</p>


<!-- 
  DESCRIBE WHY THE CHANGE WAS MADE.

  For instance:

  The previous behavior violated the JDBC standard. The new behavior
  is correct.
-->


<h4>Rationale for Change</h4>

<p>
To avoid duplication of code, the error handling is now done by a generic routine in ALTER TABLE rather than a routine specific to SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE. This change to use ALTER TABLE code to implement SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE was made in 10.5 release and that is the reason behind the change in error code behavior.
</p>


<!-- 
  OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR
  OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE.

  For instance:

  Users must recode applications which open multiple streams on the same column.
-->


<h4>Application Changes Required</h4>

<p>
If the application is looking for 42X05, it should be changed to look for 42Y55.
</p>



</blockquote>
<hr>
<h3>
<a name="Note for DERBY-48"></a>Note for DERBY-48</h3>
<blockquote>

<!-- 
  SUMMARIZE THE ISSUE. This is a one line summary of the issue.

  For instance:

  Applications may no longer open two InputStreams on the same ResultSet column.
-->


<h4>Summary of Change</h4>

<p>
In Derby, a user's <b>initial default schema</b> is named the same as
the user name, or APP if a user is not provided at connect time. This
schema is implicitly auto-created the first time a schema object is
created in that schema.
</p>

<p>
Previously, this auto-creation would be performed as part of the user
transaction. This would sometimes lead to locking issues as described
in this issue. With this change, the auto-creation is now performed
and committed immediately in a separate sub-transaction.
</p>


<!-- 
  DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS.

  For instance:

  In the previous release, applications were able to open two
  InputStreams on the same column. Depending on how these streams
  interacted, the value siphoned out of the column was erratic. Now
  Derby raises a SQLException when the application attempts to create
  the second InputStream.
-->


<h4>Symptoms Seen by Applications Affected by Change</h4>

<p>
The initial default schema will be present in cases where it
previously would not yet have been created: If the user transaction
that creates a schema object leading to auto-creation of the initial
default schema rolls back for some reason after having created the
schema, up till now the auto-creation of the initial default schema
would be rolled back as well. Since it is now created and committed in
a sub-transaction, the schema creation will not be rolled back: the
default schema will persist.
</p>


<!-- 
  OPTIONAL: DESCRIBE INCOMPATIBILITIES WITH PREVIOUS RELEASE, IF ANY.

  For instance:

  Applications which open two InputStreams on the ResultSet column now
  fail.
-->


<h4>Incompatibilities with Previous Release</h4>

<p>
Most applications should not be impacted by this change, but there are
some corner cases as described below:
</p>

<p>
If the application tests for the existence of the initial default
schema by querying Derby system tables, the results could now be
different than in earlier releases, if the test is made after a
rollback as described in the previous section.
</p>

<p>
Since the initial default schema will now potentially exist in cases
where it would previously not exist, schema operations may be
impacted, e.g.  where before a DROP SCHEMA &lt;default schema name&gt;
RESTRICT would fail due to it not yet existing, it could now work (if
empty), depending on when the drop attempt is made.
</p>

<!-- 
  DESCRIBE WHY THE CHANGE WAS MADE.

  For instance:

  The previous behavior violated the JDBC standard. The new behavior
  is correct.
-->


<h4>Rationale for Change</h4>

<p>
Implicit schema creation is now performed in its own transaction to
avoid deadlocks with other connections accessing the same schema.
</p>

<p>
Doing this is a separate transaction avoids holding dictionary locks
longer than necessary,
cf. <a href="https://issues.apache.org/jira/browse/DERBY-48">DERBY-48</a>
and thus reduces the chance for deadlocks.
</p>


<!-- 
  OPTIONAL: DESCRIBE HOW TO REVERT TO THE PREVIOUS BEHAVIOR OR
  OTHERWISE AVOID THE INCOMPATIBILITIES INTRODUCED BY THIS CHANGE.

  For instance:

  Users must recode applications which open multiple streams on the same column.
-->


<h4>Application Changes Required</h4>

<p>
Verify that the application code does not rely on the initial default schema
being absent after a rollback.
</p>



</blockquote>
</blockquote>
<h2>
<a name="Build Environment"></a>Build Environment</h2>
<blockquote>
<p>Derby release 10.5.1.1 was built using the following environment:</p>
<ul>
<li>
<b>Branch</b> - Source code came from the 10.5 branch.</li>
<li>
<b>Machine</b> - Microsoft Windows XP Professional Version 2002 Service Pack 2.</li>
<li>
<b>Ant</b> - Apache Ant version 1.7.0 compiled on December 13 2006.</li>
<li>
<b>JDK 1.4</b> - Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2)
Classic VM (build 1.4.2, J2RE 1.4.2 IBM Windows 32 build cn142-20061124 (SR7)</li>
<li>
<b>Java 6</b> - Java(TM) SE Runtime Environment (build pwi3260sr3-20081106_07(SR3))
IBM J9 VM (build 2.4, J2RE 1.6.0 IBM J9 2.4 Windows XP x86-32 jvmwi3260-20081105_25433</li>
<li>
<b>Compiler</b> - The 1.6 compiler was used to compile all classes, but java 1.4.2 classes were used to compile appropriate 1.4.2 support</li>
<li>
<b>JSR 169</b> - J2ME support was built using IBM's j9 jvm from WEME6.1</li>
</ul>
</blockquote>
</body>
</html>
